<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    

<script>
// 数据类型转换通常指将其他数据类型转成 字符串 数字 布尔值
// 数据类型转换有两种: 强制转换(显式转换) 和 自动转换(隐式转换)

// 自动转换(隐式转换): 关系运算符
// JS引擎会根据运算符自动转成适合运算符运算符的数据类型

// 数字和字符串比较时,字符串转成数字
console.log( 5 > '2' );// true 自动将'2'转成数字
console.log( 98 > 'a' );// false 自动将'a'转成数字

// 两个字符串比较时,先比较第一个字符的ASCII码值,如果第一个字符相同,则比较后一位
console.log( '9' > '7' );// true
console.log( 'abc' < 'adc' );// false

console.log( null == undefined );// true 都转成布尔值
console.log( null === undefined );// false 没有类型转换

// 数字和布尔值比较时,布尔值转成数字
console.log( 2 == true );// false

// 布尔值和字符串比较时,都转成数字
console.log( true == 'a' );// false 
console.log( true == '' );// false
console.log( false == '0' );// true


// 面试题: 为什么?
// console.log( [] == ![] );// true
// console.log( 0 == 0 );// true

var result = 12 + 2 + '12' - 2 * 2;
//               14 + '12' - 2 * 2
//                  '1412' - 2 * 2
//                  '1412' - 4 = 1408
console.log( result );// 1408

</script>
</body>
</html>